package com.dataStructure.并查集;

import org.junit.jupiter.api.Test;

public class BcjTest {

    @Test
    public void test1(){
        并查集 bcj = new 并查集_QuickFind(12);

        bcj.union(0,1);
        bcj.union(0,3);
        bcj.union(0,4);
        bcj.union(2,3);
        bcj.union(2,5);

        bcj.union(6,7);

        bcj.union(8,10);
        bcj.union(9,10);
        bcj.union(9,11);

        System.out.println(bcj.isSame(1,7));
        System.out.println(bcj.isSame(1,5));
        System.out.println(bcj.isSame(6,10));
        System.out.println(bcj.isSame(8,11));
        for (int i = 0; i < 12; i++) {
            System.out.println(bcj.find(i));
        }
    }

    @Test
    public void test2(){
        通用的并查集_带泛型<Integer> bcj = new 通用的并查集_带泛型<>();
        for (int i = 0; i <1000; i++) {
            bcj.makeSet(i);
        }
        bcj.union(0,1);
        bcj.union(0,3);
        bcj.union(0,4);
        bcj.union(2,3);
        bcj.union(2,5);

        bcj.union(6,7);

        bcj.union(8,10);
        bcj.union(9,10);
        bcj.union(9,11);

        System.out.println(bcj.isSame(1,7));
        System.out.println(bcj.isSame(1,5));
        System.out.println(bcj.isSame(6,10));
        System.out.println(bcj.isSame(8,11));
        for (int i = 0; i < 12; i++) {
            System.out.println(bcj.find(i));
        }
    }
}
